#include "curlRequest.h"

//发送get请求
void sendGetRequest(char* url,size_t (*fn)(void*, size_t, size_t , void*)){
    CURL* curl = curl_easy_init();
    if (curl)
    {
        curl_easy_setopt(curl,CURLOPT_URL,url);
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, fn);
        CURLcode res = curl_easy_perform(curl);
        if(res != CURLE_OK) {
            fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
    }
    //清理
        curl_easy_cleanup(curl);
    }
    
}

//发送post请求
void sendPostRequest(char* url,char*parmStr,size_t (*fn)(void*, size_t, size_t , void*)){
    CURL* curl = curl_easy_init();
    if (curl)
    {
        curl_easy_setopt(curl,CURLOPT_URL,url);
        //设置post参数 这是和get请求的差别
        curl_easy_setopt(curl,CURLOPT_POSTFIELDS,parmStr);
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, fn);
        //curl_easy_setopt(curl, CURLOPT_WRITEDATA, response);
        CURLcode res = curl_easy_perform(curl);
         if(res != CURLE_OK) {
        fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
    }
    //清理
        curl_easy_cleanup(curl);
    }
}

int downloadRes(char *url,char * savleFilePath){
    //要保持的文件路径
    FILE *saveFile =  fopen(savleFilePath,"wb");
    //初始化
    CURL *curl = curl_easy_init();
    if (curl)
    {
        //设置相关参数  url  存数据的文件
        curl_easy_setopt(curl,CURLOPT_URL,url);   
        //设置访问资源之间存放文件
        curl_easy_setopt(curl,CURLOPT_FILE,saveFile);  
        
        //发请求
         CURLcode res = curl_easy_perform(curl);

        //判断是否发送成功
        if (res!=CURLE_OK)
        {
            fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
            return -1;
        }
        curl_easy_cleanup(curl);

    }
    
    return 0;
}